package com.example.demo.pojo;

/**
 * 定义统一的Json结构
 * 由于封装的Json数据的类型不确定，所以在定义统一的json结构时，我们需要用到泛型。
 * 统一的json结构中属性包括：数据、状态码、提示信息即可。
 * 构造方法应该有
 * @author 陈其营
 * @param <T> 泛型
 */
public class JsonResult<T> {
    /**
     * 返回的数据
     */
    private T data;
    /**
     * 响应代码
     */
    private String code;
    /**
     * 响应信息
     */
    private String msg;

    /**
     * 无数据返回,状态码为200,提示响应成功
     */
    public JsonResult(){
        this.code="200";
        this.msg="响应成功";
    }

    /**
     * 无数据返回,人为指定状态码和提示信息
     * @param code 状态码
     * @param msg 提示信息
     */
    public JsonResult(String code, String msg){
        this.code=code;
        this.msg=msg;
    }
    /**
     * 有数据返回,状态码为200,提示响应成功
     * @param data 返回的数据
     */
    public JsonResult(T data){
        this.data=data;
        this.code="200";
        this.msg="响应成功";
    }
    /**
     * 有数据返回,状态码为200,人为指定提示信息
     * @param data 返回的数据
     * @param msg 响应的信息
     */
    public JsonResult(T data, String msg){
        this.data=data;
        this.code="200";
        this.msg=msg;
    }


    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

}
